1. Field of the Invention
The present invention relates to a method and apparatus for rotating image data, and, more particularly, to a method and apparatus for rotating image data used in a facsimile device, a digital copying machine, or a printer.
2. Description of the Prior Art
In a conventional facsimile device, when it has been loaded with recording paper with a lateral length different from that of an image being read for transmission or received, the image has been recorded at the center of recording paper in the size as is if the recording paper has had larger width. The image has been recorded after it has been reduced in its lateral size if the recording paper has had narrower width.
In addition, if the image has the same longitudinal size as the width of recording paper, for example, if the image size is B5 (182 mmxc3x97257 mm), while the width of recording paper is B4 (257 mm), there has been a device which has recorded the image on the recording paper after it is rotated by 90 degrees. This image rotating method has used two page memories each storing image data of one sheet. First, after image data for the first sheet before it has been rotated (original image data) has been written in one page memory, the original image data is rotated by reading from that page memory, and the rotated image data is written into the other page memory. Then, while original image data for second sheet has been being written in one page memory, the rotated image data for the first sheet has been read from the other page memory. However, this method has a disadvantage that it requires two page memories, so that the device becomes expensive.
Then, as an approach to solve this disadvantage, Japanese Patent Application Laid-Open No. 6-105118 discloses an image data rotating method which rotates original image data using a line buffer capable of storing image data of several lines, and writes the rotated image data in one page memory. This image data rotating method is outlined in the following. As shown in FIG. 32, after several lines of original image data is once stored in an n-line buffer memory 31, it is read and rotated in a rotating section 32, and the rotated image data is written in a predetermined address of a page memory 33. After the above process is performed until all image data for one sheet is written in the page memory 33, the rotated image data for one sheet is read from the page memory 33 and recorded on recording paper at a recording section 34.
According to this image data rotating method, since it is sufficient to provide one page memory and several line memories, capacity of memory can be reduced when compared to the above-mentioned image rotating method.
In FIG. 32, since a code storage section and other components are not directly related to the present invention, description of them is omitted. Refer to the published specification for detail.
In addition, Japanese Patent Application Laid-Open No. 7-320053 discloses an image data rotating method described below. This image data rotating method uses one page memory, and two buffer memories which have storage capacity capable of storing image data for n pixelsxc3x97n lines (n being a positive integer) out of image data stored in the page memory. Then, image data of n pixelsxc3x97n lines is read from the page memory, and written in one of the buffer memories. After the image data of n pixelsxc3x97n lines is rotated by using the other buffer memory, the rotated image data of n pixelsxc3x97n lines is written in the same area in the page memory where the image data of n pixelsxc3x97n lines before rotation has been stored.
The conventional image data rotating method disclosed in Japanese Patent Application Laid-Open No. 6-105118 or 7-320053 requires the n-line buffer 31 capable of storing image data of several lines or two buffer memories capable of storing image data of n pixelsxc3x97n lines, both of which are used only for rotation of image data, in addition to the page memory for storing image data for one sheet.
Therefore, there is a disadvantage that provision of the n-line buffer 31 or two buffer memories dedicated for rotation of image data makes the device expensive, and they are wasteful if image data is not frequently rotated.
In addition, since the conventional image data rotating method requires a process for writing image data in the n-line buffer 31 or the buffer memories, a process for rotating the image data, and a process for writing the rotated image data for one sheet in the page memory, in addition to processes when the rotation is not performed such as a process for writing the image data for one sheet in the page memory, and a process for reading the image data for one sheet from the page memory, it has a disadvantage that time in rotating and recording the image data for one sheet is about twice than a case where rotation is not performed.
Furthermore, the conventional image data rotating method has the following disadvantages since, after it once writes image data for one sheet in the page memory, it reads and rotates the image data, and then writes the rotated image data for one sheet in the page memory. That is, if, after image data is rotated, the image data cannot be recorded in the form after the rotation, for example, when original image data of A4 size (210 mmxc3x97297 mm) with its longitudinal direction as the vertical direction is rotated by 90 degrees, and recorded on recording paper with width of the longitudinal length of A4 size (297 mm), the recording paper is exhausted, and recording paper with width of the lateral length of A4 size (210 mm, but actual width of recording paper being 216 mm) is loaded on the device, it becomes necessary to perform a process for returning the rotated image data to the image data before rotation, and a process for reading original image data, whereby recording the image data on the recording paper takes much time by such amount.
The present invention is made in view of the above circumstances, and intended to provide a method and apparatus for rotating image data which can reduce capacity of memory used for rotation of image data, and shorten processing time.
To solve the above problems, an image data rotating method according to a first aspect of the present invention comprises the steps of:
using an image memory capable of storing pixels in same number as square of a maximum number among number of pixels per one line of each of image data with a plurality of sizes to be rotated and number of lines to be rotated;
number of pixels and number of lines in the same number as one of common divisors of the number of pixels per line and the number of lines being unit number of pixels and unit number of lines in the process writing or reading the image data in or from said image memory;
for consecutive two pages in image data with the same size of a plurality of pages to be rotated, reading all pixels of image data in a former page written in the image memory from each storage area at each address of the image memory in a predetermined order of reading according to an angle to be rotated by the unit number of pixels for one line and by the unit number of lines for all lines; and
writing all pixels of image data in the latter page in the same storage area at the same address of the image memory in said predetermined order by the unit number of pixels for one line and by the unit number of lines for all lines.
The image data rotating method according to a second aspect of the present invention comprises: a first process comprising the steps of:
using an image memory capable of storing pixels in same number as square of a maximum number among number of pixels per one line of each of image data with a plurality of sizes to be rotated and number of lines to be rotated;
number of pixels and number of lines in the same number as one of common divisors of the number of pixels per line and the number of lines being unit number of pixels and unit number of lines in the process writing or reading the image memory; and
for image data with the same size of a plurality of pages to be rotated, sequentially writing all pixels of image data of the first page in the image memory from the first storage area at the first address to an address and storage area corresponding to the size by the unit number of pixels for one line and by the unit number of lines for all lines; or
writing in each storage area at each address of the image memory in a predetermined order of writing according to an angle to be rotated by the unit number;
a second process comprising the steps of: for image data of consecutive two pages, reading all pixels of image data in a former page written in the image memory from each storage area at each address of the image memory in a predetermined order of reading according to the same angle as the above angle or at a different angle to be rotated by the unit number of pixels for one line and by the unit number of lines for all lines; and
writing all pixels of image data in the latter page in the same storage area at the same address of the image memory in said predetermined order by the unit number of pixels for one line and by the unit number of lines for all lines.
The image data rotating method according to a third aspect of the present invention comprises: a first process comprising the steps of:
using an image memory capable of storing pixels in the same number as the squared maximum number of the number of pixels per line of each of image data with a plurality of sizes to be rotated m1, m2, m3, . . . (m being a positive integer, the subscript indicating that size is different) and the number of lines n1, n2, n3, . . . (n being a positive integer, the subscript indicating that size is different and corresponds to m1, m2, m3, . . . );
k pixels and k lines in the same number as one of common divisors k of the number of pixels per line m1, m2, m3, . . . and the number of lines n1, n2, n3, . . . (k being a positive integer) being unit number of pixels and unit number of lines in the process writing or reading the image memory;
for image data of a plurality of pages with the same size to be rotated by 90 degrees, selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the 4j-th (j=0, 1, 2, . . . ) page stored in the image memory from the first address of addresses of the image memory, from storage areas (ixe2x88x921+Lxc3x97k) in the address (i being a variable indicating the order of pixels to be read, i=1, 2, . . . , k, L being a variable indicating the order of lines in a line group consisting of k lines which constitute the rotated image data, L=1, 2, . . . , k); and
writing all pixels of image data at (4j+1)-th page to be rotated every k pixels in the specified storage area at the same address of the image memory in which the selected k pixels are stored;
the writing step being repeated until the value of L exceeds k by updating the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
a second process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+1)-th page stored in the image memory from the (n/kxe2x88x921)-th address of addresses of the image memory to the first address, from storage areas (ixc3x97kxe2x88x92Lxe2x88x921) in the address; and
writing all pixels of image data at (4j+2)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by updating by n/k the address every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
a third process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the (4j+2)-th page stored in the image memory from the (n2/k2xe2x88x921)-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92L)xc3x97kxe2x88x92i} in the address; and
writing all pixels of image data at (4j+3)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line; and
a fourth process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+3)-th page stored in the image memory from the {nxc3x97(nxe2x88x92k)/k2}-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92i)xc3x97k+L} in the address; and
writing all pixels of image data at (4j+4)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing by n/k the address every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
wherein the fourth process is followed by the first process, the read image data is not output in the first process if j=0.
The image data rotating method according to a fourth aspect of the present invention comprises: a first process comprising the steps of:
using an image memory capable of storing pixels in the same number as the squared maximum number of the number of pixels per line of each of image data with a plurality of sizes to be rotated m1, m2, m3, . . . (m being a positive integer, the subscript indicating that size is different) and the number of lines n1, n2, n3, . . . (n being a positive integer, the subscript indicating that size is different and corresponds to m1, m2, m3, . . . );
k pixels and k lines in the same number as one of common divisors k of the number of pixels per line m1, m2, m3, . . . and the number of lines n1, n2, n3, . . . (k being a positive integer) being unit number of pixels and unit number of lines in the process writing or reading the image memory;
for image data of a plurality of pages with the same size to be rotated by 180 degrees, selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the 2j-th (j=0, 1, 2, . . . ) page stored in the image memory from the first address of addresses of the image memory, from storage areas (ixe2x88x921+Lxc3x97k) in the address (i being a variable indicating the order of pixels to be read, i=1, 2, . . . , k, L being a variable indicating the order of lines in a line group consisting of k lines which constitute the rotated image data, L=1, 2, . . . , k); and
writing all pixels of image data at (2j+1)-th page to be rotated every k pixels in storage areas at the same address of the specified image memory in which the selected k pixels are stored; and
the writing step being repeated until the value of L exceeds k by updating the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
a second process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the (2j+1)-th page stored in the image memory from the (n2/k2xe2x88x921)-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92L)xc3x97kxe2x88x92i} in the address; and
writing all pixels of image data at (2j+2)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line; and
wherein the second process is followed by the first process, the read image data being not output in the first process if j=0.
The image data rotating method according to a fifth aspect of the present invention comprises: a first process comprising the steps of:
using an image memory capable of storing pixels in the same number as the squared maximum number of the number of pixels per line of each of image data with a plurality of sizes to be rotated m1, m2, m3, . . . (m being a positive integer, the subscript indicating that size is different) and the number of lines n1, n2, n3, . . . (n being a positive integer, the subscript indicating that size is different and corresponds m1, m2, m3, . . . );
k pixels and k lines in the same number as one of common divisors k of the number of pixels per line m1, m2, m3, . . . and the number of lines n1, n2, n3, . . . (k being a positive integer) being unit number of pixels and unit number of lines in the processes writing and reading the image memory;
for image data of a plurality of pages with the same size to be rotated by 270 degrees, selecting k pixels out of k2 pixels, which are read by specifying all pixels in image data of the 4j-th (j=0, 1, 2, . . . ) page stored in the image memory by every n/k from the first address of addresses of the image memory, from storage areas (ixe2x88x921+Lxc3x97k) in the address (i being a variable indicating the order of pixels to be read, i=1, 2, . . . , k, L being a variable indicating the order of lines in a line group consisting of k lines which constitute the rotated image data, L=1, 2, . . . , k); and
writing all pixels of image data at (4j+1)-th page to be rotated every k pixels in storage area at the same address of the specified image memory in which the selected k pixels are stored;
the writing step being repeated until the value of L exceeds k by updating the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
a second process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+1)-th page stored in the image memory from the {nxc3x97(nxe2x88x92k)/k2}-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92i)xc3x97k+L} in the address; and
writing all pixels of image data at (4j+2)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing by n/k the address every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
a third process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the (4j+2)-th page stored in the image memory from the (n2/k2xe2x88x921)-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92L)xc3x97kxe2x88x92i} in the address; and
writing all pixels of image data at (4j+3)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line; and
a fourth process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+3)-th page stored in the image memory from the (n/kxe2x88x921)-th address of addresses of the image memory to the first address, from storage areas (ixc3x97kxe2x88x92Lxe2x88x921) in the address; and
writing all pixels of image data at (4j+4)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by updating by n/k the address every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
wherein the fourth process is followed by the first process, the read image data is not output in the first process if j=0.
The image data rotating method according to a sixth aspect of the present invention comprises: a first process comprising the steps of:
using an image memory capable of storing pixels in the same number as the squared maximum number of the number of pixels per line of each of image data with a plurality of sizes to be rotated m1, m2, m3, . . . (m being a positive integer, the subscript indicating that size is different) and the number of lines n1, n2, n3, . . . (n being a positive integer, the subscript indicating that size is different and corresponds to mi, m2, m3, . . . );
k pixels and k lines in the same number as one of common divisors k of the number of pixels per line m1, m2, m3, . . . and the number of lines n1, n2, n3, . . . (k being a positive integer) being unit number of pixels and unit number of lines in the process writing or reading the image memory;
for image data of a plurality of pages with the same size to be rotated, selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the 4j-th (j=0, 1, 2, . . . ) page stored in the image memory from the first address of addresses of the image memory, from storage areas (ixe2x88x921+Lxc3x97k) in the address (i being a variable indicating the order of pixels to be read, i=1, 2, . . . , k, L being a variable indicating the order of lines in a line group consisting of k lines which constitute the rotated image data, L=1, 2, . . . , k); and
writing all pixels of image data at (4j+1)-th page to be rotated every k pixels in storage areas at the same address of the specified image memory in which the selected k pixels are stored;
the writing step being repeated until the value of L exceeds k by updating the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
a second process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+1)-th page stored in the image memory from the (n/kxe2x88x921)-th address of addresses of the image memory to the first address, from storage areas (ixc3x97kxe2x88x92Lxe2x88x921) in the address; and
writing all pixels of image data at (4j+2)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by updating by n/k the address every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
a third process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the (4j+2)-th page stored in the image memory from the (n2/k2xe2x88x921)-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92L)xc3x97kxe2x88x92i} in the address; and
writing all pixels of image data at (4j+3)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing the address by one every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line; and
a fourth process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+3)-th page stored in the image memory from the {nxc3x97(nxe2x88x92k)/k2}-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92i)xc3x97k+L} in the address; and
writing all pixels of image data at (4j+4)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing by n/k the address every time the processes for reading and writing k pixels are completed, and returning the address to the first address every time the process is completed for one line;
wherein, when the image data is rotated by 90 degrees, the first to the fourth processes are sequentially performed;
the fourth process being followed by the first process;
the read image data being not output in the first process if j=0;
when the image data is rotated by 180 degrees, the first and the third processes being alternately performed;
the read image data being not output in the first process if j=0;
when the image data is rotated by 270 degrees, said first, the fourth, the third, and the second processes being performed in this order;
the second process being followed by the first process;
the read image data being not output in the first process if j=0;
when image data being repeatedly not rotated and rotated by 180 degrees every other page, the first, the first, the third and the third processes being performed in this order;
the third process of the second time being followed by the first process of the first time;
the read image data being not output in the first process if j=0;
when image data being repeatedly rotated by 90 and 270 degrees every other page, the first, and the second processes being alternately performed;
the read image data being not output in the first process if j=0;
when image data being repeatedly rotated by 270 and 90 degrees every other page, the first, and the fourth processes being alternately performed;
the read image data being not output in the first process if j=0.
A seventh aspect of the present invention relates to the image data rotating method according to any one of the first to sixth aspects, wherein, before the pixels are written, image synthesization is performed for pixels read from the same storage area at the same address of the image memory and pixels to be written, the synthesized image being written in the same storage area at the same address of the image memory.
An eighth aspect of the present invention relates to the image data rotating method according to any one of the first to seventh aspects, wherein, after image data of a page is written in the image memory in a predetermined procedure, if the image data cannot be read and output outside in a procedure different from the predetermined procedure, but can be output outside in the predetermined procedure, if it is read in the predetermined procedure.
The image data rotating apparatus according to a ninth aspect of the present invention comprises:
operation controller means having an image capable of the squared maximum number of the number of pixels per line of each of image data with a plurality of sizes to be rotated m1, m2, m3, . . . (m being a positive integer, the subscript indicating that size is different) and the number of line s n1, n2, n3, . . . (n being a positive integer, the subscript indicating that size is different, and corresponds to m1, m2, m3, . . . , respectively), k pixels and k lines in the same number as one of common divisors k of the number of pixels per line m1, m2, m3, . . . and the number of lines n1, n2, n3, . . . being unit number of pixel and unit number of line in the process writing or reading the image data, and generating information on size of image data to be rotated and an angle to be rotated;
a page counter for counting the number of paged for specifying which ordered page of the image data of a plurality of pages to be rotated is processed;
a line counter for counting the number of lines from 0 to (kxe2x88x921) for specifying pixels on which ordered line in the line group consisting of k lines should be processed in image data of one page to be rotated;
address controller means for generating address data of the image memory from or to which pixels should be read or written based on information, the number of pages, and the number of lines supplied from the operation controller means, the page counter and the line counter; and
area selection controller means for selecting k storage areas which store k pixels out of a plurality of pixels constituting image data of the former page read from an address specified by the address data of the image memory based on the information, the number of pages and the number of lines supplied from the operation controller means, the page counter and the line counter, for extracting k pixels corresponding to the areas, and for writing k pixels constituting image data to be rotated in the selected storage areas;
having a control procedure, the control procedure consisting of a first process comprising the steps of: for image data of a plurality of pages with the same size to be rotated by 180 degrees, selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the 4j-th (j=0, 1, 2, . . . ) page stored in the image memory by every n/k from the first address of addresses of the image memory, from storage areas (ixe2x88x921+Lxc3x97k) in the address (i being a variable indicating the order of pixels to be read, i=1, 2, . . . , k, L being a variables indicating the order of lines in a line group consisting of k lines, L=1, 2, . . . , k); and
writing all pixels of image data at (4j+1)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by updating the address by one every time the processes for reading and writing k pixels complete, and returning the address to the first address every time the process completes for one line;
a second process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+1)-th page stored in the image memory from the (n/kxe2x88x921)-th address of addresses of the image memory to the first address, from storage areas (ixc3x97kxe2x88x92Lxe2x88x921) in the address; and
writing all pixels of image data at (4j+2)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by updating by n/k the address by one every time the processes for reading and writing k pixels complete, and returning the address to the first address every time the process completes for one line;
a third process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by n/k all pixels in image data of the (4j+2)-th page stored in the image memory from the (n2/k2xe2x88x921)-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92L)xc3x97kxe2x88x92i} in the address; and
writing all pixels of image data at (4j+3)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by updating by one the address by one every time the processes for reading and writing k pixels complete, and returning the address to the first address every time the process completes for one line; and
a fourth process comprising the steps of: selecting k pixels out of k2 pixels, which are read by specifying by one all pixels in image data of the (4j+3)-th page stored in the image memory from the {nxc3x97(nxe2x88x92k)/k2}-th address of addresses of the image memory to the first address, from storage areas {(kxe2x88x92i)xc3x97k+L} in the address; and
writing all pixels of image data at (4j+4)-th page to be rotated every k pixels in k storage areas at the same address of the specified image memory;
the writing step being repeated until the value of L exceeds k by reducing by n/k the address by one every time the processes for reading and writing k pixels complete, and returning the address to the first address every time the process completes for one line;
wherein, when the image data is rotated by 90 degrees, the first to the fourth processes are sequentially performed; the fourth process being followed by the first process;
the read image data being not output in the first process if j=0;
when the image data is rotated by 180 degrees, the first and the third processes being alternately performed;
the read image data being not output in the first process if j=0;
when the image data is rotated by 270 degrees, first, the fourth, the third, and the second processes being performed in this order;
the second process being followed by the first process;
the read image data being not output in the first process if j=0;
when image data being repeatedly not rotated and rotated by 180 degrees every one other page, the first, the first, the third and the third processes being performed in this order;
the third process of the second time being followed by the first process of the first time;
the read image data being not output in the first process if j=0;
when image data being repeatedly rotated by 90 and 270 degrees every one other page, the first, and the second processes being alternately performed;
the read image data being not output in the first process if j=0;
when image data being repeatedly rotated by 270 and 90 degrees every one other page, the first, and the fourth processes being alternately performed;
the read image data being not output in the first process if j=0.
A tenth aspect of the present invention relates to the image data rotating apparatus according to the ninth aspect, wherein the area selection controller means performs image synthesization for pixels read from the same storage area at the same address of the image memory and pixels to be written, and writes the synthesized pixels in the same storage area at the same address of the image memory.
An eleventh aspect of the present invention relates to the image data rotating apparatus according to the ninth or tenth aspect, further comprising memory managing means for securing minimum memory capacity necessary for the image data when rotating the image data out of the entire memory capacity of the image memory.
According to the arrangement of the present invention, since it is arranged, in reading rotated image data of a page, to write image data of the next page in the same area at the same address of the image memory, it is possible to reduce the amount of memory used for rotating the image data, and to shorten the processing time.
In addition, rotation for image data of the second page and thereafter can be performed at a speed similar to the case where the image data is simply once written and read in and from the image memory without the rotation.